package com.assignwork.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @ClassName ShipVoyagePageVO
 * @Description 船舶航次信息分页
 * @Author dujianyu
 * @Date 2023/8/15 9:42
 */
@Data
public class ShipVoyagePageVO {

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "航次信息ID 航次信息")
    private Long voyageId;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "船舶档案ID 船舶档案")
    private Long shipArchiveId;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "船舶预报ID 船舶预报")
    private Long shipId;

    @ApiModelProperty(name = "当前船舶状态 船舶预报")
    private String forecastStatus ;

    @ApiModelProperty(name = "当前船舶状态 船舶预报")
    private String forecastStatusName ;

    @ApiModelProperty(name = "船名 船舶预报")
    private String shipNameZh;

    @ApiModelProperty(name = "是否显示")
    private String isShow;

    @ApiModelProperty(name = "进出口 船舶预报")
    private String impExp;

    @ApiModelProperty(name = "进出口 船舶预报 ")
    private String impExpName;

    @ApiModelProperty(name = "进出口船代公司 船舶预报")
    private String impExpAgent;

    @ApiModelProperty(name = "进出口船代公司 船舶预报")
    private String impExpAgentName;

    @ApiModelProperty(name = "航次 船舶预报")
    private String voyageNo;

    @ApiModelProperty(name = "泊位 船舶预报")
    private String berth;

    @ApiModelProperty(name = "泊位 船舶预报")
    private String berthName;

    @ApiModelProperty(name = "imo 船舶档案")
    private String imo;

    @ApiModelProperty(name = "内外贸 船舶预报")
    private String tradeType;

    @ApiModelProperty(name = "内外贸 船舶预报")
    private String tradeTypeName;

    @ApiModelProperty(name = "货名 船舶预报")
    private String cargoType;

    @ApiModelProperty(name = "货名 船舶预报")
    private String cargoTypeName;

    @ApiModelProperty(name = "吨数 船舶预报")
    private BigDecimal ton;

    @ApiModelProperty(name = "签证吨 航次信息")
    private BigDecimal visaTon;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @ApiModelProperty(name = "抵港时间 船舶预报")
    private Date rta ;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @ApiModelProperty(name = "靠泊时间 船舶预报")
    private Date rtb ;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @ApiModelProperty(name = "离港时间 船舶预报")
    private Date rtd ;

    @ApiModelProperty(name = "国家 船舶档案")
    private String country;

    @ApiModelProperty(name = "首缆 船舶档案")
    private String headCable;

    @ApiModelProperty(name = "尾缆 船舶档案")
    private String tailCable;

    @ApiModelProperty(value = "船长 船舶档案")
    private BigDecimal length;

    @ApiModelProperty(value = "船宽 船舶档案")
    private BigDecimal width;

    @ApiModelProperty(value = "载重吨 船舶档案")
    private BigDecimal deadWeightTon;

    @ApiModelProperty(value = "船头 船舶档案")
    private String shipHead;

    @ApiModelProperty(value = "船尾 船舶档案")
    private String shipTail;

    @ApiModelProperty(value = "满载艏吃水 船舶档案")
    private BigDecimal draught;

    @ApiModelProperty(value = "满载艉吃水 船舶档案")
    private BigDecimal sternDraft;

    @ApiModelProperty(name = "空船艏吃水 船舶档案")
    private BigDecimal emptyDraught;

    @ApiModelProperty(name = "空船艉吃水 船舶档案")
    private BigDecimal emptySternDraft;

    @ApiModelProperty(name = "预结 航次信息")
    private Integer isBudget;

    @ApiModelProperty(name = "完船 航次信息")
    private Integer isFinish;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @ApiModelProperty(name = "停时 航次信息")
    private Date residenceTime;

    @ApiModelProperty(value = "小货类 航次信息")
    private String liteCargoType;

}
